package constants

import (
	"os"
)

// const value
var (
	// AppName 服务名，构建的时候会自动替换；例如：moat，passport，push,security_ota
	AppName = ""
	// Agent name，代理服务名称，后台任务会直接使用代理服务的SQS消息列表
	// 例如后台任务云存储过期会将消息发到代理服务的消息列表中处理，而本身并不处理SQS消息
	AgentName = ""
	// CommonAgentName 公共agent name
	CommonAgentName = "common"
	// Major version number
	// Env 环境参数，由nacos配置传入；例如: dev, qa, eu-qa, goc, sqa, pr, eu
	Env = ""
	// Version 版本号，构建的时候会自动替换,通常是tag名; 例如：v4.4.4-230411-1045
	Version = ""
)

// GetRole get server role
func GetRole() string {
	return os.Getenv("ROLE")
}

// ServerVersion returns the complete version number.
func ServerVersion() string {
	return Version
}

// ServerName return app name
func ServerName() string {
	return AppName
}

// ProxyName return proxy name
func ProxyName() string {
	if len(AgentName) > 0 {
		return AgentName
	}
	return AppName
}

// CommonRedisAgentName return proxy name
func CommonRedisAgentName() string {
	return CommonAgentName
}

// EnvName return env name
func EnvName() string {
	return Env
}

func SetEnv(env string) {
	if len(env) == 0 {
		panic("env is empty")
	}
	Env = env
}
